import { httpGet, httpPost, httpPut, httpDel } from "@/appBase/request"
import { toData, toPageData, toPageQueryParam } from "@/appBase/utils"

/**
 * 查询教师列表
 * @param {Object} queryParam
 * @param {String} queryParam.account 教师账户
 * @param {String} queryParam.beginTime 开始时间
 * @param {String} queryParam.endTime 结束时间
 * @param {String} queryParam.majorCode 专业编码
 * @param {String} queryParam.name 姓名
 * @param {Number} queryParam.phone 手机号
 * @param {Number} queryParam.sex 性别
 * @param {Number} queryParam.status 状态(1-正常 -1停用)
 * @param {Object} pageParam
 * @param {Number} pageParam.pageNo 
 * @param {Number} pageParam.pageSize 
 */
export function queryEduTeacherList(queryParam, pageParam) {
    return httpGet(`/edu/teacher/list`, toPageQueryParam(queryParam, pageParam)).then((result) => toPageData(result, pageParam));
}

/**
 * 导出教师列表
 * @param {Object} queryParam
 * @param {String} queryParam.account 教师账户
 * @param {String} queryParam.beginTime 开始时间
 * @param {String} queryParam.endTime 结束时间
 * @param {String} queryParam.majorCode 专业编码
 * @param {String} queryParam.name 姓名
 * @param {Number} queryParam.phone 手机号
 * @param {Number} queryParam.sex 性别
 * @param {Number} queryParam.status 状态(1-正常 -1停用)
 * @param {Object} pageParam
 * @param {Number} pageParam.pageNo 
 * @param {Number} pageParam.pageSize 
 */
export function exportEduTeacherList(queryParam, pageParam) {
    return httpGet(`/edu/teacher/export`, toPageQueryParam(queryParam, pageParam)).then((result) => toData(result));
}

/**
 * 添加教师
 */
export function addEduTeacher(params) {
    return httpPost(`/edu/teacher`,params).then((result) => toData(result));
}

/**
 * 修改教师
 */
 export function updateEduTeacher(params) {
    return httpPut(`/edu/teacher`,params).then((result) => toData(result));
}

/**
 * 查询教师详情
 * @param {Object} params
 * @param {String} params.id
 */
export function queryEduTeacherDetail(params) {
    return httpGet(`/edu/teacher/${params.id}`).then((result) => toData(result));
}

/**
 * 修改教师状态
 * @param {Object} params
 * @param {String} params.id
 * @param {Number} params.status -1=无效，1=有效
 */
export function updateEduTeacherStatus(params) {
    return httpPut(`/edu/teacher/status`,params).then((result) => toData(result));
}

/**
 * 删除教师
 * @param {Object} params
 * @param {String} params.id
 */
 export function delEduTeacher(params) {
    return httpDel(`/edu/teacher/${params.id}`).then((result) => toData(result));
}

/**
 * 下载教师模板
 */
 export function importTemplateEduTeacher() {
    return httpGet('/edu/teacher/importTemplate').then((result) => toData(result));
}

/**
 * 导入教师列表
 * @param {Object} params 文件
 */
 export function importEduTeacher(params) {
    return httpPost('/edu/teacher/import', params).then((result) => toData(result));
}

/**
 * 查询学生列表
 * @param {Object} queryParam
 * @param {String} queryParam.studentNo 学生学号
 * @param {String} queryParam.name 学生姓名
 * @param {Number} queryParam.sex 性别
 * @param {String} queryParam.phone 手机号码
 * @param {Number} queryParam.originProvinceCode 学生籍贯 省
 * @param {Number} queryParam.originCityCode 学生籍贯 市
 * @param {Number} queryParam.originAreaCode 学生籍贯 区
 * @param {String} queryParam.politicCode 政治面貌
 * @param {Number} queryParam.majorCode 所在专业
 * @param {Number} queryParam.classId 班级编码
 * @param {Number} queryParam.status 状态(1-正常 -1停用)
 * @param {String} queryParam.beginTime 开始时间
 * @param {String} queryParam.endTime 结束时间
 * @param {Object} pageParam
 * @param {Number} pageParam.pageNo
 * @param {Number} pageParam.pageSize
 */
export function queryEduStudentList(queryParam, pageParam) {
    return httpGet(`/edu/student/list`, toPageQueryParam(queryParam, pageParam)).then((result) => toPageData(result, pageParam));
}

/**
 * 删除学生
 * @param {Object} params
 * @param {String} params.id
 */
export function deleteEduStudent(params) {
    return httpDel(`/edu/student/${params.id}`).then((result) => toData(result));
}

/**
 * 添加学生
 */
export function addEduStudent(params) {
    return httpPost(`/edu/student`, params).then((result) => toData(result));
}

/**
 * 修改学生
 */
export function updateEduStudent(params) {
    return httpPut(`/edu/student`, params).then((result) => toData(result));
}

/**
 * 查询学生详情
 * @param {Object} params
 * @param {String} params.id
 */
export function queryEduStudentDetail(params) {
    return httpGet(`/edu/student/${params.id}`).then((result) => toData(result));
}

/**
 * 修改学生状态
 * @param {Object} params
 * @param {String} params.id
 * @param {Number} params.status -1=无效，1=有效
 */
export function updateEduStudentStatus(params) {
    return httpPut(`/edu/student/status`,params).then((result) => toData(result));
}

/**
 * 下载学生模板
 */
export function importTemplateEduStudent() {
    return httpGet('/edu/student/importTemplate').then((result) => toData(result));
}

/**
 * 导入学生列表
 * @param {Object} params 文件
 */
 export function importEduStudent(params) {
    return httpPost('/edu/student/import', params).then((result) => toData(result));
}

/**
 * 导出学生列表
 * @param {Object} queryParam
 * @param {String} queryParam.studentNo 学生学号
 * @param {String} queryParam.name 学生姓名
 * @param {Number} queryParam.sex 性别
 * @param {String} queryParam.phone 手机号码
 * @param {Number} queryParam.originProvinceCode 学生籍贯 省
 * @param {Number} queryParam.originCityCode 学生籍贯 市
 * @param {Number} queryParam.originAreaCode 学生籍贯 区
 * @param {String} queryParam.politicCode 政治面貌
 * @param {Number} queryParam.majorCode 所在专业
 * @param {Number} queryParam.classId 班级编码
 * @param {Number} queryParam.status 状态(1-正常 -1停用)
 * @param {String} queryParam.beginTime 开始时间
 * @param {String} queryParam.endTime 结束时间
 * @param {Object} pageParam
 * @param {Number} pageParam.pageNo
 * @param {Number} pageParam.pageSize
 */
export function exportEduStudent(queryParam, pageParam) {
    return httpGet('/edu/student/export', toPageQueryParam(queryParam, pageParam)).then((result) => toData(result));
}

/**
 * 查询专业-年级
 * @param {Object} params
 * @param {String} params.gradeCode
 * @param {String} params.majorCode
 */
export function queryEduClassListGradeMajor(params) {
    return httpGet(`/edu/class/list-grade-major`,params).then((result) => toData(result));
}

/**
 * 查询班级列表
 * @param {Object} queryParam
 * @param {String} queryParam.gradeCode 年级编码
 * @param {String} queryParam.majorCode 专业编码
 * @param {String} queryParam.name 名称
 * @param {String} queryParam.status 状态(1-正常 -1停用)
 */
export function queryEduClassList(queryParam, pageParam) {
    return httpGet(`/edu/class/list`,toPageQueryParam(queryParam, pageParam)).then((result) => toPageData(result,pageParam));
}

/**
 * 添加班级
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.gradeCode 年级编码
 * @param {String} params.majorCode 专业编码
 * @param {String} params.name 班级名称
 * @param {String} params.remark 备注
 * @param {String} params.status 状态(1-正常 -1停用)
 */
export function addEduClass(params) {
    return httpPost(`/edu/class`, params).then((result) => toData(result));
}

/**
 * 更新班级
 * @param {Object} params
 * @param {String} params.id
 * @param {String} params.gradeCode 年级编码
 * @param {String} params.majorCode 专业编码
 * @param {String} params.name 班级名称
 * @param {String} params.remark 备注
 * @param {String} params.status 状态(1-正常 -1停用)
 */
export function updateEduClass(params) {
    return httpPut(`/edu/class`, params).then((result) => toData(result));
}

/**
 * 删除班级
 * @param {Object} params
 * @param {String} params.id
 */
export function deleteEduClass(params) {
    return httpDel(`/edu/class/${params.id}`).then((result) => toData(result));
}

/**
 * 查询班级详情
 * @param {Object} params
 * @param {String} params.id
 */
 export function queryEduClass(params) {
    return httpGet(`/edu/class/${params.id}`).then((result) => toData(result));
}

/**
 * 修改班级状态
 * @param {Object} params
 * @param {String} params.id
 * @param {Number} params.status -1=无效，1=有效
 */
 export function updateEduClassStatus(params) {
    return httpPut(`/edu/class/status`,params).then((result) => toData(result));
}